package com.asa.fushu.bean;

import com.asa.HanShu2;

/**
 *
 *	复数的函数
 *
 *
 *
 */
public class HanShu_Fu {
	
	HanShu2 u;//实部
	HanShu2 v;//虚部

	/**
	 * 	实表示
	 * 	通过构造函数的方式来构造
	 * @param real	实数部分的	(x,y)
	 * @param image	虚数部分的	(x,y)
	 */
	public HanShu_Fu(HanShu2 u,HanShu2 v) {

//		real.hanshu(x, y);
//		image.hanshu(x, y);
		this.u = u;
		this.v = v;
	}
	
	
	
	
	/**
	 * 	实表示的函数的运算
	 * @param fushu	传入一个值，复数值
	 * @return	返回一个复数值
	 */
	public Fushu hanshu(Fushu fushu) {
		double x = fushu.real;
		double y = fushu.im;

		Fushu result = new Fushu();
		result.real = u.hanshu(x, y);
		result.im = v.hanshu(x, y);
		
		return result;
		
	}
	
	/**
	 * 	指数函数形式
	 * Math.log(z)
	 * 
	 * 
	 */
	
	

	/**
	 * 	函数可导的条件
	 * 
	 * 	这个函数的实部的对x偏导数要等于虚部的对y偏导数
	 * 	这个函数的实部的对y偏导数要等于虚部的对x偏导数
	 * 
	 * 	判断这个函数是否可导的判断函数方法
	 * @param asa	传入的函数
	 * @param x	可导的取值范围，如果是手算，就不需要这种了，这种是数值思路
	 * @param y	可导的取值范围，如果是手算，就不需要这种了，这种是数值思路
	 * @return	boolean值，可导为true
	 */
	public static boolean candao(HanShu_Fu asa,double x[],double[] y) {
		
		HanShu2 u = asa.u;
		HanShu2 v = asa.v;

		
		
		
		
		return false;
	}
	
	
	
	

	

}
